#include <stdlib.h>  
#include <crtdbg.h>  
#ifdef _DEBUG  
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)  
#endif  
void EnableMemLeakCheck()
{
	int tmpFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
	tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
	_CrtSetDbgFlag(tmpFlag);
}//检查内存泄漏


#include <iostream>
#include "DoubleLinkedList.h"

using namespace std;

const List<int>::iterator find(List<int>& L, int i) {  //查找函数
   int pos = 1;
	for (List<int>::iterator itr = L.begin(); itr != L.end(); ++itr)
   {
      if(*itr == i)
      {
         cout << "所查找的数字在第" << pos << "个" << endl;
         return itr;
      }
      pos++;
   }
	cout << "在该双链表中没有找到该值" << endl;
   return L.begin();
}

const void printt(List<int>& L)  //构建一个方便的输出函数
{
   for (int &x : L)
   {
   cout << x << endl;  
   }
}

int main()
{ 
   List<int> L;   //创建链表L;
   for(int i =1;i!=6;i++)  //用push_back依次插入1,2,3,4,5;
   {L.push_back(i);}

   printt(L);   //输出L;

   List<int>::iterator iter;  //找到数字3是第几个数字;
   iter = find(L,3);

   L.erase(iter);   //删除数字3;

   printt(L);   //输出L;

   iter = find(L,3);    //找找数字三在哪里
    
   //L.~List();

   EnableMemLeakCheck(); //检查内存泄漏;
   return 0;
}